﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using MJM.SPP.EntidadesNegocio;
using MJM.CBD.Conn;

namespace MJM.SPP.AccesoDatos
{
    public class ParametroCuentAD
    {
        public int Insertar(ParametroCuentEN obj)
        {
            int codigo=0;
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_i_T_WEB_PARCUE_Insertar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIdCuenta, prmIdParametro,prmIdParamCuenta;
            try
            {
                prmIdCuenta = cmd.CreateParameter();
                prmIdCuenta.ParameterName = "@vCUEWEB_P_inID";
                prmIdCuenta.SqlDbType = SqlDbType.Int;
                prmIdCuenta.Value = obj.CUEWEB_P_inID;
                cmd.Parameters.Add(prmIdCuenta);

                prmIdParametro = cmd.CreateParameter();
                prmIdParametro.ParameterName = "@vPARURL_P_inID";
                prmIdParametro.SqlDbType = SqlDbType.Int;
                prmIdParametro.Value = obj.PARURL_P_inID;
                cmd.Parameters.Add(prmIdParametro);

                prmIdParamCuenta = cmd.CreateParameter();
                prmIdParamCuenta.Direction = ParameterDirection.ReturnValue;
                prmIdParamCuenta.SqlDbType = SqlDbType.Int;
                cmd.Parameters.Add(prmIdParamCuenta);
                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                codigo = Convert.ToInt32(prmIdParamCuenta.Value);
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }
            return codigo;
        }

        public List<ParametroCuentEN> Listar(int IdCuenta)
        {            
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_T_WEB_PARCUE_Listar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIdCuenta;
            SqlDataReader dr;
            List<ParametroCuentEN> lst = new List<ParametroCuentEN>();
            ParametroCuentEN objParametroCuentEN;
            try
            {
                prmIdCuenta = cmd.CreateParameter();
                prmIdCuenta.ParameterName = "@vCUEWEB_P_inID";
                prmIdCuenta.SqlDbType = SqlDbType.Int;
                prmIdCuenta.Value = IdCuenta;
                cmd.Parameters.Add(prmIdCuenta);
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    objParametroCuentEN = new ParametroCuentEN();
                    objParametroCuentEN.CUEWEB_P_inID = dr.GetInt32(dr.GetOrdinal("CUEWEB_P_inID"));
                    objParametroCuentEN.PARCUE_inFLAELI = dr.GetInt32(dr.GetOrdinal("PARCUE_inFLAELI"));
                    objParametroCuentEN.PARCUE_P_inID = dr.GetInt32(dr.GetOrdinal("PARCUE_P_inID"));
                    objParametroCuentEN.PARURL_P_inID = dr.GetInt32(dr.GetOrdinal("PARURL_P_inID"));
                    objParametroCuentEN.NombreParam = dr.GetString(dr.GetOrdinal("PARURL_chNOMPAR"));
                    lst.Add(objParametroCuentEN);
                }

                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch(Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
            }

            return lst;
        }

        public int Eliminar(int IdPrograma,int IdParametro)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_u_T_WEB_PARCUE_Eliminar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmIdCuenta, prmIdParametro;
            try
            {
                prmIdCuenta = cmd.CreateParameter();
                prmIdCuenta.ParameterName = "@vCUEWEB_P_inID";
                prmIdCuenta.SqlDbType = SqlDbType.Int;
                prmIdCuenta.Value = IdPrograma;
                cmd.Parameters.Add(prmIdCuenta);

                prmIdParametro = cmd.CreateParameter();
                prmIdParametro.ParameterName = "@vPARURL_P_inID";
                prmIdParametro.SqlDbType = SqlDbType.Int;
                prmIdParametro.Value = IdParametro;
                cmd.Parameters.Add(prmIdParametro);
                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                cmd.Dispose();
                conn.Dispose();
            }
            catch(Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }

            return 1;
        }


    }
}
